Lately, cloud computing has been introduced allowing for computing as a service using resources distributed over a network. For example, cloud computing may provide computation, software applications, data access, data management, and storage resources without requiring users to know the location other details of the computing infrastructure. Such cloud computing can be defined as an on-demand outsourcing service provided through a communication network. In a cloud computing environment, a service provider may form cloud centers by virtually integrating resources distributed over a communication network and provide a cloud service to a user through the cloud centers. Such a cloud center may be a basic unit to provide a cloud service in cloud computing environment. In order to provide the cloud service to a client, the cloud center may create at least one virtual machine using associated resources, such as a computing node and a storage node.
The cloud service may include a storage service. The storage service may be referred to as cloud storage, data storage as a service, or storage as a service (SaaS). That is, the cloud storage service may denote a storage service provided through a network. The cloud storage service may be easily expandable and easily applicable to a commercial system. S3 of Amazon, Rackspace of Nirvanix, and Mosso cloud division of Hosting may be well-known examples of a cloud storage system.
A cloud storage system may be a virtual storage system that may integrate physical heterogeneous storage devices into one logical virtual storage pool using software program or hardware equipment for virtualization function. The cloud storage system may allocate storage resources to clients when necessary. The cloud storage system may have many advantages, such as high resource utilization, cost reduction, high expandability; and high availability. Such advantages may be achieved through virtualization of physical storage devices. For example, a cloud storage system may virtually allocate storage devices according to various demands. Accordingly, virtual allocation may prevent unnecessary storage devices from being added and increase utilization of existing storage devices. A cloud storage system may reallocate storage devices having low utilization or be not used for a predetermined time period among distributed storage devices through virtualizing the storage devices. Accordingly, reallocation may reduce costs for adding new storage devices into a cloud storage system. Furthermore, a cloud storage system may easily and conveniently add new storage devices through virtualization of storage devices without interrupting storage services. Moreover, a cloud storage system may mirror or duplicate the same data through virtualizing storage devices. Accordingly, the cloud storage system may prevent data loss even though a particular storage device malfunctions.
As described above, a cloud storage system may control and manage a plurality of storage devices as one storage pool. Each storage device in the storage pool may have different performance according to a storage capability. Accordingly, discriminately managing each storage device according to a storage capacity might be advantageous or even required.
A typical cloud storage system may control timing of storing data in storage devices. Particularly, the data storing times of each storage device may be decided in proportion to a storage capacity of each storage device. However, the typical cloud storage system does not distribute data to storage devices according to storage capacities of storage devices. Distributed storage of data may result in data that is split into a plurality of fragments having a certain size and the plurality of fragments are distributedly stored in different storage devices.
For example, a storage device A has a storage capacity of about 20 GB and a storage device B has a storage capacity of about 100 GB. The data storing time ratio of storage devices A and B may be discriminately defined as 1:5 according to the storage capacities of storage devices A and B. After 10 GB-data is stored in the storage device B five times, the data storing time of the storage device B reaches its maximum data storing time. In this case, the typical cloud storage system cannot store data in the storage device B anymore, even though the storage device B still has available space to store data.